package cc.rengu.redp.bizimpl.upmp.service;


import cc.rengu.igas.bomp.facade.BompMchntQueryService;
import cc.rengu.igas.bomp.facade.request.MchntAreaListQueryRequest;
import cc.rengu.igas.bomp.facade.request.MchntInfoListQueryRequest;
import cc.rengu.igas.momp.facade.bean.CashierCashbackMcListInfoBean;
import cc.rengu.igas.momp.facade.bean.CashierCashbackToCashierDetailInfoBean;
import cc.rengu.igas.momp.facade.request.*;
import cc.rengu.igas.momp.facade.response.*;
import cc.rengu.igas.momp.facade.result.Result;
import cc.rengu.redp.bizimpl.upmp.vo.UpmpUserInfoVO;
import cc.rengu.redp.common.domain.QueryRequest;
import cc.rengu.redp.common.exception.RedpException;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.Map;

public interface ICashierMarketManagerService {

    /**
     * 获取法人机构营销活动账号
     */
    Result<QueryInstitutionMcAccountInfoResponse> getMcAccountInfo() throws RedpException;

    /**
     * 收银员返现规则配项查询
     */
    Result<QueryCashierCashbackBonusRuleResponse> getBonusRuleList() throws RedpException;

    /**
     * 查询收银员返现活动List
     *
     * @param queryParam
     * @param request
     * @return
     */
    IPage<CashierCashbackMcListInfoBean> getCashierMCList(QueryCashierCashbackMcListInfoRequest queryParam, QueryRequest request) throws RedpException;

    /**
     * 查询收银员返现活动明细List
     *
     * @param queryParam
     * @param request
     * @return
     */
    IPage<CashierCashbackToCashierDetailInfoBean> getCashierMCDetailList(QueryCashbackToCashierDetailRequest queryParam, QueryRequest request) throws RedpException;

    /**
     * 查询收银员返现活动 详情
     */
    public Result<QueryCashierCashbackMcDetailInfoResponse> getCashierMCDetail(QueryCashierCashbackMcDetailInfoRequest queryParam) throws RedpException;

    /**
     * 保存、编辑、修改 收银员返现活动
     */
    Result<EditCashierCashbackMcDetailResponse> EditCashierAgentMarket(EditCashierCashbackMcDetailRequest param) throws RedpException;

    /**
     * 审核退回
     */
    Result<ManageCashierCashbackMcResponse> handleCashierAgentMarket(ManageCashierCashbackMcRequest param) throws RedpException;

    /**
     * 发布代收银员返现营销活动
     */
    Result<PublishCashierCashbackMcResponse> publishCashierAgentMarket(PublishCashierCashbackMcRequest param) throws RedpException;

    Map<String, Object> queryMcNoList(UpmpUserInfoVO user, MchntInfoListQueryRequest request, BompMchntQueryService bompQueryService, String traceNo);

    Map<String, Object> queryMchntAreaList(UpmpUserInfoVO user, MchntAreaListQueryRequest request, BompMchntQueryService bompQueryService, String traceNo);
}
